
#ifndef __URI_MEM_H__
#define __URI_MEM_H__ 

#include "uri_os_incl.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef struct uri_mm_s uri_mm_t;

void    uri_mm_global_init(void);
void    uri_mm_global_deinit(void);

void*   uri_mm_global_alloc(size_t size);
void    uri_mm_global_free(void* ptr);

#define uri_malloc(size)    uri_mm_global_alloc(size)
#define uri_free(ptr)       uri_mm_global_free(ptr)

uri_mm_t* uri_mm_create(void);
void uri_mm_destroy(void);

void*   uri_mm_alloc(uri_mm_t* mm, size_t size);
void    uri_mm_firee(uri_mm_t* mm, void* ptr);

#ifdef __cplusplus
}
#endif

#endif /* __URI_MEM_H__ */
